return TRUE;
}
+static gboolean
+gtk_css_provider_load_internal (GtkCssProvider *css_provider,
+ GFile *file,
+ const char *data,
+ gsize length,
+ GError **error)
+{
+ GScanner *scanner;
+ gboolean result;
+
+ scanner = gtk_css_scanner_new (file, data, length);
+
+ result = parse_stylesheet (css_provider, scanner, error);
+
+ gtk_css_scanner_destroy (scanner);
+
+ return result;
+}
+
/**
* gtk_css_provider_load_from_data:
* @css_provider: a #GtkCssProvider
gssize length,
GError **error)
{
- GScanner *scanner;
- gboolean result;
-
g_return_val_if_fail (GTK_IS_CSS_PROVIDER (css_provider), FALSE);
g_return_val_if_fail (data != NULL, FALSE);
gtk_css_provider_reset (css_provider);
- scanner = gtk_css_scanner_new (NULL, data, length);
-
- result = parse_stylesheet (css_provider, scanner, error);
-
- gtk_css_scanner_destroy (scanner);
-
- return result;
+ return gtk_css_provider_load_internal (css_provider, NULL, data, length, error);
}
/**
GError **error)
{
GError *internal_error = NULL;
- GScanner *scanner;
gchar *data;
gsize length;
gboolean ret;
gtk_css_provider_reset (css_provider);
- scanner = gtk_css_scanner_new (file, data, length);
-
- ret = parse_stylesheet (css_provider, scanner, error);
+ ret = gtk_css_provider_load_internal (css_provider, file, data, length, error);
g_free (data);
- gtk_css_scanner_destroy (scanner);
return ret;
}
GtkCssProviderPrivate *priv;
GError *internal_error = NULL;
GMappedFile *mapped_file;
- GScanner *scanner;
const gchar *data;
gsize length;
GFile *file;
gtk_css_provider_reset (css_provider);
file = g_file_new_for_path (path);
- scanner = gtk_css_scanner_new (file, data, length);
- g_object_unref (file);
-
- ret = parse_stylesheet (css_provider, scanner, error);
- gtk_css_scanner_destroy (scanner);
+ ret = gtk_css_provider_load_internal (css_provider, file, data, length, error);
+ g_object_unref (file);
g_mapped_file_unref (mapped_file);
return ret;